package com.example.demo.dao;

import com.example.demo.pojo.Conversation;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;

import javax.transaction.Transactional;
import java.util.List;

/**
 * 操作会话的Reposition , 对象 , 用于 , 修改会话
 *
 * @author 刘二朋
 * @date 2020-12-05 14:59
 */
@Transactional
public interface ConverSationRepository extends JpaRepository<Conversation, Object> {

    /**
     * 判断 用户1 , 与用户2 是否互相为好友关系的sql语句
     *
     * @param from 用户1
     * @param to   用户2
     * @return 返回查询到的结果
     */
    @Modifying
    @Query(value = "update conversation set state='1' where fromid=?1 and toid=?2 or fromid=?2 and toid=?1", nativeQuery = true)
    int updataFromto(String from, String to);

    /**
     * 搜索指定的会话, 是否存在 ,
     *
     * @param from 会话的创建者
     * @param to   会话的另一个用户
     * @return 返回查询到的结果
     */
    @Modifying
    @Query(value = "select * from conversation where fromid=?1 and toid=?2 or fromid=?2 and toid=?1", nativeQuery = true)
    List<Conversation> selectfromto(String from, String to);

    /**
     * 根据指定的用户 , 来获取关于他的所有的会话列表
     *
     * @param from 会话的创建者
     * @return 返回查询到的结果
     */
    @Modifying
    @Query(value = "select * from conversation where fromid=?1 or toid=?1", nativeQuery = true)
    List<Conversation> selectfrom(String from);
}
